#linux device drivers
Explore tagged Tumblr posts
emblogicsblog · 2 months ago
Text
USB Device Driver Course Online
Learn Advanced Embedded Linux ARM USB Device Driver Course Online – Certified Training Available Worldwide.
Tumblr media
Noida, India—Are you an engineering student or expert looking to learn Embedded Linux ARM device drivers? Join our Advanced Embedded Linux ARM Training and advance your skills! This path is designed to offer hands-on experience with Linux device drivers, ARM board convey-up, Linux internals, and real-world projects.
What You’ll Learn:
Embedded Linux fundamentals and ARM board setup
Linux device driver improvement and debugging
Working with hardware interfaces and peripherals
Practical ARM-based total tasks for palms-on getting to know
Our schooling is led by enterprise experts with years of experience in embedded structures and Linux development. The route gives an established mastering path to assist students in building information in embedded programming, kernel improvement, and device motive force implementation.
Who Can Join?
Engineering students (ECE, CSE, EE, etc.)
Professionals in embedded software program improvement
Anyone captivated by Linux and ARM-based structures
Why Choose Us?
✔ Live Online Classes & Self-Paced Learning
✔ Practical Hands-on Projects
✔ Certification Upon Completion
✔ Guidance for Industry-Oriented ARM Projects
We offer schooling in Noida, India, and global–overlaying cities like Texas, Cambridge, Chicago, Sydney, Perth, Tampa, Brisbane, Melbourne, New York, Quebec, British Columbia, Ontario, Calgary, Alberta, and Yorkshire.
Start your journey in Embedded Linux ARM development nowadays! Enroll now and gain the competencies needed to excel in the embedded industry.
📞 Contact us at +91-8527567776 for more details and registration.
Click to:Chat on WhatsApp
🌐 Visit: Emblogic - USB Device Driver Course Online
0 notes
forlinx · 1 year ago
Text
Device Classification and Their Associations in Linux System
Linux Each device on the system has its own set of fixed rules for operation, and there are numerous types and models of devices. It is not practical or meaningful to write the fixed rules for each device into the kernel.
Each device has its corresponding driver to ensure it can operate properly on the system. From a small LED light to a large network card, all devices require relevant drivers A driver can be seen as a layer of software between the application program and the actual device.
An application program controls a device by first sending a signal to the driver. The driver then receives the signal and commands the device to perform the corresponding action. If the application program wants to obtain the data collected by the device, it also needs to be done through the driver.
Classification of device in Linux
Linux systems divide devices into three basic types, and each module is typically implemented as one of these classes.
01 Character device
A character device is a device that can be accessed as a stream of bytes. This feature is implemented by a character device driver. Character device drivers typically implement at least open, close, read, and write system calls.
The character device is a sequential access, and the corresponding information can be read only after the device responds. It cannot be accessed randomly, and each character device has a device number, which consists of a major device number and a minor device number Common character devices such as serial ports and IICs.
The corresponding files for character devices are in the /dev directory, and each file corresponds to one piece of hardware. In the /dev directory of linux system, use ls -l to view the details, the first letter "c" is the identification of the character device file.
Tumblr media
02 Block device
Like character devices, block devices are accessed through the file system node in the/dev directory. File systems can be accommodated on block devices. Common block devices such as disk, emmc flash, NAND flash, SD card, etc. Each block device likewise has r--+'/h vortex【5 slices【a device number, which consists of a primary device number and a secondary device number. Use the command ls -l to view the details in the /dev directory on a linux system. The first letter "b" identifies the block device file. /dev Each block device file under dev corresponds to a partition of the disk.
Tumblr media
03 Network equipment
Any network-related transaction goes through a network interface, a device that can exchange data with other hosts. Usually, the interface is a hardware device, but it can also be a purely software device, for example, there is a lo in ifconfig to view information about the network interface, which is the network loopback (loopback) interface.
The way to access the network interfaces is to assign them a unique name, such as eth0, eth1, lo, and so on. However, no corresponding node exists in the file system for this name. Network interfaces do not have a device number like character and block devices, only a unique name such as eth0, eth1, etc., and this name does not need to correspond to a device file node.
The kernel uses a set of functions related to packet transfers to communicate with network device drivers, which differ from the read() and write() methods of character and block devices.
Tumblr media
Various character devices and block devices all reflect the linux "everything is a file" design idea; network devices are the only devices that do not reflect this idea.
Device node, device driver and device association
There are many devices mounted on the whole system. When we access a device node, how does the system know which device driver to use and which device to access? This is achieved through the device number.
When creating a device node, you need to specify the major device number and the minor device number. For device nodes, the name is not important, the device number is the most important, which actually specifies the corresponding driver and the corresponding device.
Primary device numbers are used to distinguish between different types of devices, while secondary device numbers are used to distinguish between multiple devices of the same type. For commonly used devices, Linux has agreed-upon numbers, such asHard Disk the master device number of 3.
Use the command ls -l plus name in the /dev directory to view the corresponding primary and secondary device numbers.
Tumblr media
Main device
When a driver is initialized, it registers its driver and corresponding master device number with the system so that when an application accesses a device node, the system knows which driver it is accessing. You can drive the master device number of a system device through the /proc/devices file.
Tumblr media
Minor equipment number
When the driver runs, it creates a device object for each device it finds that it can drive and assigns it a minor device number to distinguish between different devices. So that when an application accesses a device node, the driver knows which device it is accessing based on the minor number.
Originally published at www.forlinx.net.
0 notes
relto · 2 years ago
Text
ohoho not only could i isolate the issue (though idk if its possible to fix it) i also by chance figured out what was causing the other weird ass problem they were having!!
1 note · View note
themanjeet · 2 years ago
Text
Introduction to Linux Kernel and Device Drivers
The Linux kernel is the core of the Linux operating system. It is responsible for managing the hardware, providing basic services, and running user applications.
https://www.reddit.com/r/SSDN_Technologies/comments/13s6ait/introduction_to_linux_kernel_and_device_drivers/
0 notes
codingquill · 2 years ago
Text
What is the kernel of an operating system ?
You can think of the kernel as the core component of an operating system, just like the CPU is the core component of a computer. The kernel of an operating system, such as the Linux kernel, is responsible for managing system resources ( such as the CPU, memory, and devices ) . The kernel of an operating system is not a physical entity that can be seen. It is a computer program that resides in memory.
Key points to understand the relationship between the kernel and the OS:
The kernel acts as the intermediary between the hardware and the software layers of the system. It provides a layer of abstraction that allows software applications to interact with the hardware without needing to understand the low-level details of the hardware
The kernel controls and manages system resources such as the CPU, memory, devices, and file systems. It ensures that these resources are allocated and utilized efficiently by different processes and applications running on the system.
The kernel handles tasks like process scheduling, memory management, device drivers, file system access, and handling interrupts from hardware devices.
The kernel can be extended through the use of loadable kernel modules (LKM). LKMs allow for the addition of new functionality or device drivers without modifying the kernel itself.
224 notes · View notes
netscapenavigator-official · 8 months ago
Text
So I have a Linux problem, and I'm just gonna post it here. I dunno if I have the reach for this, but if you know a potential fix, I will gladly accept it:
Basically, I run Zorin OS 17.2 Core on my Mid-2017 MacBook Pro (Two Thunderbolt Ports). This computer has been hell to make work, but after years of fiddling and finding drivers and terminal commands, it works almost like OEM.
My last problem with this machine, and the only thing that does not function like it's OEM, is the Sleep/Wake function. This is a known issue with 2016 and newer MacBooks on Linux; However, there are workarounds.
Namely, I found a kernel parameter that prevents Deep sleep and only allows the computer to go into s2idle when the lid is shut. This isn't great because it means the dies quickly and gets hot when the lid is shut, but I can't really do anything about it. This did, however, fix an issue I was having where the audio would just stop working if I ever shut the lid.
The final issue was getting the computer to wake up on its own. Every time I start the computer up (not waking it up; only powering it up from a complete shutdown) I have go into terminal and run this:
sudo bash -c 'echo "0" > /sys/bus/pci/devices/0000\:01\:00.0/d3cold_allowed'
I don't know what this command does, but without it, the machine will just never wake up. If you close the lid without running this at initial startup, it cannot be woken back up until it is rebooted.
That's not really a problem, since it's only once per reboot, and I don't reboot my laptop very frequently.
You know what would really make this even more seamless, though? If I could run this command using Ubuntu's startup applications menu. That way, I wouldn't have to manually open terminal every boot just to run this command. It would just run automatically, and I'd never have to worry about it. It would work like OEM! (Minus the less efficient sleep state.)
However, I can't do that. I've tried that. In fact, I have that exact command in my Startup Applications app, as we speak.
Any time I start the computer up and DON'T manually run the command, if I shut the lid, the computer sleeps. It will, however, wakeup (unlike if the command had never been input). HOWEVER. Unlike running the command in terminal, when it finally wakes up, the cursor photo changes into a gray square, my Night Light settings are reset, my wallpaper changes to black, my system accent color is changed to default, and any time I click inside the password box to login, the field immediately becomes inactive again. It doesn't stay active long enough for me to even get two letters typed. All this happens while "Authentication Error" rapidly and randomly flashes below the password box.
Eventually, if I don't force shut down the machine, it'll crash. It'll throw me into terminal mode, and it'll infinitely repeat an error claiming it could not write to some 'systemd jounral' thing because the operating system is in read-only mode. After that it'll either repeat that error over and over, creating endless lines in terminal mode, or it'll just freeze, and I have to restart the laptop either way. So, my question is:
WHY.
Why does running this command in terminal and running it via Startup Application have different results, and is there any way to fix it??
16 notes · View notes
techav · 2 months ago
Text
On Reinventing the Wheel
I have my little 68030 computer I built and I have my crude little kernel that lets the computer run BASIC for up to 8 users at the same time.
But wouldn't it be great if those users could do more than just type in small programs to watch an endless stream of HELLORLD fill the screen? You know ... silly things like print words on paper or, I don't know, save to a disk, maybe?
It would be great. I would love to be able to do that.
I'm not there yet.
See, I only have the one serial printer, so I really need some way to share it among the 8 users. Perhaps when a user wants to print something I could hold it in memory until the printer is free. I could print a page for one user, then move on to the next in queue so that everyone gets their turn at using the printer.
... I may have just reinvented the print spooler.
But that sounds like it would be difficult to add as a state machine to my kernel, and it would only make it more difficult to add other features later. It would be so much easier if I could just run this print spooler as if it were another user, just like I'm doing with BASIC.
... I may have just reinvented background processes.
If I'm running my print spooler program as a user-level process, then I could take advantage of the kernel function call I already have for writing data to a serial port. Oh, but I don't want to give up one of my 8 terminals; I would much prefer to use one of the two 6850 UARTs I had on the main board. I would need to update that kernel call to use the 6850 register set when the print spooler prices needs to send data, but still use the 16550 register set when the user programs need to send data. Perhaps I could just standardize the parameters and return values for the transmit/receive functions for the different devices and have the kernel call the right one based on what the process needs.
... I may have just reinvented device drivers.
Oh you know I bet I could do something very similar for reading & writing files. I could have a kernel function call for reading or writing a sector on the disk, but have another process that does the hard work of interpreting the disk data as the files requested by the user programs.
... I may have just reinvented the user-level file system driver.
I am absolutely reinventing the wheel. Every step of the way, every problem I come across is a solved problem. The Dartmouth Time Sharing System was doing all this with BASIC on a single computer 60 years ago, and it wasn't the first to try sharing a computer like this.
So yes, I am reinventing the wheel ... but I understand why it's round. I understand why the axel connects to the center of it. I understand why it must be able to spin independently of the cart.
Every step I take down this road, every solved problem I solve again helps me to understand why we do things the way we do. I have spent hours poring over the source code for Unix, for NetBSD, for Linux, Minix, Fuzix, DOS, CP/M, and others. Compared to what I have built, these are all massive, hugely complex beasts of programs that break my brain to try to understand.
But each time I reinvent the wheel I understand just a little bit more about how these existing systems work. I understand a little more about the problems the original programmers were trying to solve and the problems they faced, and I understand a little bit more about why they chose to build things the way they did.
And that is why I do this.
24 notes · View notes
thepowerisyouth · 1 year ago
Note
Hello The Yower Is Pouth As you are the tumblr uncle, i come to you for advice; I am trying to program something new. Something fresh. My 3ds has Linux installed on it, however, it does not have networking capabilities, as there are no drivers for the network interface card on the 3ds. I ask of you, do you know of any way to start learning about how developing drivers works? It would be very slay.
Phoning a friend on this problem again for actual professional opinion lol (she loves this shit)
@just-my-insufferable-existance
My two cents is: Its a super fun project to mod a 3ds, but Id probably recommend starting with older devices if you havent already because theyve made it harder and harder in the past 5-10 years to disconnect the hardware from the stupid corporate software they want you to have. Never tried 3ds so I could be wrong Im just bitter about capitalism ruining the ability to repair and mod new shit
Bennets Link:
47 notes · View notes
lilblucat · 1 year ago
Note
I just saw the ask by slushysblog. In response you sent a gif that blew me away:
Tumblr media
You see, I'm just getting into digital art, and my PC can only handle about 5 or 6 layers before my graphics environment crashes. (Ofc this forces me to restart my PC and lose anything not saved.)
I've learned to work around this, my art isn't nearly so complex as yours, but I know if I want to continue I'll have to get a better computer at some point.
I was hoping you could tell me a bit about the technical side of your work. What are your PC specs? What software do you use? That sort of thing.
Thanks in advance! I love your art!
Tumblr media
My set-up is complete overkill for art. It's a heavy gaming-ready desktop PC I got a few years back that I've upgraded the RAM and storage on over the years. I was doing fine with 16GB of RAM but I always have open a lot in CSP and other stuff so upgrading was definitely something I needed to do. 16GB should be fine for most people though.
You can also see that I run Arch Linux and uh yeahhhhhh it's a long story. The short of it is that my old laptop broke its Windows install during an update and I was completely unable to fix it so I just.... switched to Linux lol. I started out on Ubuntu and switched to Arch after a while. I don't rec using Arch unless you know what you're doing, Ubuntu is way easier.
What you might find more interesting is my away from home set up on my laptop since it's an older gaming laptop.
Tumblr media
The graphics card is actually a NVIDIA Geforce 850 or something. It's so old that you can't play some games on it. However, I have no issues with it for art. I can open my comic project files in CSP fine on it. It's also running on Linux Mint, which isn't showing up on the little image for some reason. Both of my devices run Linux, but that's a me preference/need thing and I don't rec messing with your operating system if you don't know much about computers. It gives me a bit of an edge since the system doesn't use as much RAM as Windows but yeah don't touch unless you're committed to learn. Windows will serve you fine. Or MacOS even.
As for my program, I use Clip Studio Paint EX. I bought Pro a long time ago and upgraded to EX because of the extra tools for comics and animation (I've heard animators don't like CSP though, it's the BEST program for comics however). It's a really solid program but the recent changes to pricing and updates is really stupid. Fun fact: I use only default brushes and materials because getting it to run on Linux breaks the store. I also use an older version of it because of how I got it working on this system.
For my tablet I use an XP-Pen Artist 12 Pro. It's a pretty solid screen tablet on a budget (I bought it on a sale) and I have no issues with it. I actually partly got it because I thought it was cool that XP-Pen carries official drivers for Linux too, and this helped a bit since this was before Windows bricked on me and I switched to that. It was kinda weird how it played out lol. I would heavily not rec a Wacom tablet unless it's an older one for cheap. Wacom is stupidly expensive and you can get a better bang for your buck at other companies. My first tablet is a Wacom and it's still holding up pretty well but their quality on their new tablets isn't great. Check out XP-Pen, Gaomon, and Huion for better tablet options.
29 notes · View notes
chahleybros · 11 months ago
Text
Switching to Linux 🐧
Over the past couple years Windows 10 has been giving me progressively more asinine problems to deal with, from desktop issues and bloatware, to automatically installing out of date drivers to replace the ones I've manually installed.
Before you ask, I attempted using Windows 11 when it came out and I refuse to acknowledge its existence after the hell it put me through.
Most recently Windows 10 has seemingly made a point of making ASIO and all audio devices and software I use functionally useless, causing ridiculous amounts of crackling audio. No rollbacks fixed it, no re-installs fixed it, not even Reloading Windows fixed it. The reason for using ASIO is that Windows default audio protocol, WDM, has too much latency for live real-time use. This issue not only makes things like live-streaming basically impossible but it also outright made my Digital Audio Workstation and Video Editing Software incapable of processing audio for longer than a second without hanging. Both Mixcraft and DaVinci Resolve became useless on Windows 10, and OBS was barely holding it together. When I tell you I did everything to resolve this, I mean I spent an entire Month troubleshooting this. The only solution I could find was to abandon Windows all together.
I've been meaning to switch my Setup to Mint Cinnamon for a while as I've been testing it out in Virtual box for a year or so, and after this nonsense I got a new NMVe basically immediately to run Mint on, and after switching properly I have to say I'm likely to never use Windows as my Host OS again. And yes I tested Windows on the NMVe. The issue persisted there aswell. And testing Mint via Virtual Box on Windows with Hardware Exposed via PAE and AMD-V showed the issue was entirely on Windows.
For reference this is my current rig: Everything is the same as when using Windows 10
GPU: Nvidia RTX a4500 20gb
CPU: AMD Ryzen 5 5600g
Ram: 16GB 3200mhz
DAC: PreSonus Audiobox iTwo
Capture Card: AverMedia HD Mini GC311
The Results:
Not only does Mint Cinnamon not have any of the issues I've had with Windows over the past Decade, which still persist to this day, but literally every single device I have just works.
Basically everything is Plug-n-Play with <20ms of latency on the Capture Card, which on Windows had a minimum of 600ms delay using drivers required for the card to even be detected. My Audio interface also works even better than before, with neither my DAC or Capture Card requiring manual driver installs, as their protocols are Native to the Linux Kernel.
Proton lets you play any Windows game on Steam that doesn't have explicit Linux Support, with Wine available for desktop applications. Both run better than a Native Windows install due to Mints lack of Bloatware.
Windows 10 has so much built-in Overhead that Mint can Emulate it through Virtual Box faster than if Win10 were the Host OS.
In Short: Fuck Windows. :) Also this is how my desktop looks currently:
Tumblr media Tumblr media
You can make custom start menus. :)
8 notes · View notes
emblogicsblog · 4 months ago
Text
Writing Character Device Driver
Writing Character Device Driver - A Linux character device driver allows user programs to interact with hardware devices by reading or writing data one character at a time. Developing such drivers requires understanding the Linux kernel's structure, APIs, and coding practices.
Tumblr media
Linux Kernel APIs and Key Concepts
The kernel provides APIs like register_chrdev() and alloc_chrdev_region() for registering character devices. Each device is identified by major and minor numbers, enabling the kernel to associate device files with their respective drivers.
File Operations and Device Registration
Drivers implement a set of file operations (struct file_operations) to define how the kernel handles user interactions, such as opening, reading, and writing the device. Properly registering the device using functions like cdev_add() ensures integration with the kernel.
Challenges in Development
Writing device drivers involves challenges like managing hardware-specific quirks, maintaining thread safety, and ensuring synchronization using mechanisms like mutexes, spinlocks, and semaphores. Compatibility across kernel versions and varying hardware specifications adds complexity.
Coding Standards and Security
Linux emphasizes clean, maintainable code. Following the kernel coding style and using the required headers ensures compliance. Security practices, such as validating user inputs and minimizing kernel attack surfaces, are critical in driver development.
Testing and Documentation
Thorough testing with tools like kmod and insmod is crucial. Developers must document interfaces, supported hardware, and usage instructions to aid users and maintainers.
Future Trends
With advancements in hardware, Linux device drivers will increasingly focus on improved modularity, real-time performance, and compatibility with modern interfaces like PCIe and USB 4.0.
By adhering to Linux's guidelines and practices, developers can create robust character device drivers that meet the needs of modern systems.
Linux character device driver development,Kernel modules,Device driver coding,Major and minor numbers Linux,File operations structure,Device registration in Linux,Hardware specifications for drivers,Linux kernel compatibility,Driver synchronization mechanisms,Error handling in drivers.
0 notes
digitaldetoxworld · 3 months ago
Text
Building Your Own Operating System: A Beginner’s Guide
An operating system (OS) is an essential component of computer systems, serving as an interface between hardware and software. It manages system resources, provides services to users and applications, and ensures efficient execution of processes. Without an OS, users would have to manually manage hardware resources, making computing impractical for everyday use.
Tumblr media
Lightweight operating system for old laptops
Functions of an Operating System
Operating systems perform several crucial functions to maintain system stability and usability. These functions include:
1. Process Management
 The OS allocates resources to processes and ensures fair execution while preventing conflicts. It employs algorithms like First-Come-First-Serve (FCFS), Round Robin, and Shortest Job Next (SJN) to optimize CPU utilization and maintain system responsiveness.
2. Memory Management
The OS tracks memory usage and prevents memory leaks by implementing techniques such as paging, segmentation, and virtual memory. These mechanisms enable multitasking and improve overall system performance.
3. File System Management
It provides mechanisms for reading, writing, and deleting files while maintaining security through permissions and access control. File systems such as NTFS, FAT32, and ext4 are widely used across different operating systems.
4. Device Management
 The OS provides device drivers to facilitate interaction with hardware components like printers, keyboards, and network adapters. It ensures smooth data exchange and resource allocation for input/output (I/O) operations.
5. Security and Access Control
 It enforces authentication, authorization, and encryption mechanisms to protect user data and system integrity. Modern OSs incorporate features like firewalls, anti-malware tools, and secure boot processes to prevent unauthorized access and cyber threats.
6. User Interface
 CLI-based systems, such as Linux terminals, provide direct access to system commands, while GUI-based systems, such as Windows and macOS, offer intuitive navigation through icons and menus.
Types of Operating Systems
Operating systems come in various forms, each designed to cater to specific computing needs. Some common types include:
1. Batch Operating System
These systems were widely used in early computing environments for tasks like payroll processing and scientific computations.
2. Multi-User Operating System
 It ensures fair resource allocation and prevents conflicts between users. Examples include UNIX and Windows Server.
3. Real-Time Operating System (RTOS)
RTOS is designed for time-sensitive applications, where processing must occur within strict deadlines. It is used in embedded systems, medical devices, and industrial automation. Examples include VxWorks and FreeRTOS.
4  Mobile Operating System
Mobile OSs are tailored for smartphones and tablets, offering touchscreen interfaces and app ecosystems. 
5  Distributed Operating System
Distributed OS manages multiple computers as a single system, enabling resource sharing and parallel processing. It is used in cloud computing and supercomputing environments. Examples include Google’s Fuchsia and Amoeba.
Popular Operating Systems
Several operating systems dominate the computing landscape, each catering to specific user needs and hardware platforms.
1. Microsoft Windows
 It is popular among home users, businesses, and gamers. Windows 10 and 11 are the latest versions, offering improved performance, security, and compatibility.
2. macOS
macOS is Apple’s proprietary OS designed for Mac computers. It provides a seamless experience with Apple hardware and software, featuring robust security and high-end multimedia capabilities.
3. Linux
Linux is an open-source OS favored by developers, system administrators, and security professionals. It offers various distributions, including Ubuntu, Fedora, and Debian, each catering to different user preferences.
4. Android
It is based on the Linux kernel and supports a vast ecosystem of applications.
5. iOS
iOS is Apple’s mobile OS, known for its smooth performance, security, and exclusive app ecosystem. It powers iPhones and iPads, offering seamless integration with other Apple devices.
Future of Operating Systems
The future of operating systems is shaped by emerging technologies such as artificial intelligence (AI), cloud computing, and edge computing. Some key trends include:
1. AI-Driven OS Enhancements
AI-powered features, such as voice assistants and predictive automation, are becoming integral to modern OSs. AI helps optimize performance, enhance security, and personalize user experiences.
2. Cloud-Based Operating Systems
Cloud OSs enable users to access applications and data remotely. Chrome OS is an example of a cloud-centric OS that relies on internet connectivity for most functions.
3. Edge Computing Integration
With the rise of IoT devices, edge computing is gaining importance. Future OSs will focus on decentralized computing, reducing latency and improving real-time processing.
4. Increased Focus on Security
Cyber threats continue to evolve, prompting OS developers to implement advanced security measures such as zero-trust architectures, multi-factor authentication, and blockchain-based security.
2 notes · View notes
triviallytrue · 2 years ago
Text
btw running Baldur's Gate 3 with max settings on linux is super easy. all i had to do was these few steps:
Download the game through steam like normal
Check the compatibility tools box and use Proton Experimental
Huh, usually it works by now, wonder what's up.
Oh, my device drivers are super out of date, guess I need to update those.
Launch the game and enjoy!
Have the game suddenly stop launching for indeterminate reasons.
[REDACTED]
???
Oh hey it started working again.
But the performance is really bad?
Switch to Vulkan shaders.
And it works like a charm!
see folks, it's that easy
30 notes · View notes
daemonhxckergrrl · 1 year ago
Note
so i've used linux as a daily driver all my life - kid me was *very* into free stuff i could do with a computer - but I've mostly kept to the 'user-friendly' debian-based distros like ubuntu and mint. I'm probably going to build an arch system next time I need to do a reinstall on my daily driver, but now's not the time. That said, I finally made the switch from pulse to pipewire and I'm losing my mind why did we live like that for so long?
and pulseaudio, despite receiving a ton of backlash for its issues, was already a huge improvement for home users over your options of rawdogging ALSA (exclusive device access so no sharing between applications), or old OSS which lacked Bluetooth support (though did support per-application volume control). New OSS is apparently alright but haven't used it.
ALSA + pulseaudio was my first experience of functioning sound (we tried so hard to get onboard sound working in the mid 00s and it just wasn't).
but pipewire ?? all the power and flexibility of JACK while being simple and integrating into anything supporting pulseaudio. I could never go back !!
glad you made the switch and are enjoying it !! also both arch and void have installers now that still shoe you what they're doing but walk you through it vs doing a manual install. and you can absolutely slap your usual DE and applications on top of it if you want something that Just Works :3
12 notes · View notes
daveknowstech · 5 months ago
Text
Where the Android Tablet is today, and what it might become in a post chromebook world..
Tumblr media
There has been a lot of discussion about Google, chromeOS, and the future on this Discord, and this post isn't about that. this post looks at the current state of Android Tablets where they can learn from chromeOS and also where Google might go with this..
To do this I've recently purchased the very large Samsung Galaxy Tab10 Ultra. this is a very big, premium tablet device from arguably one of the biggest Android device manufacturers on the planet. A company whom while the rest of the world forgot about android tablets, carried on and paved a solid lineup of Galaxy Tab products.
The purpose of purchasing this behemoth as two fold. firstly I like big tablets, big real-estate. I take a lot of photos, and having the bigger screen helps a lot editing and working with both photos and videos. The second reason was. Its about the sweet spot for a laptop screen as well. So with the Samsung Folio keyboard, there is a familiarity as a Chromebook user to all of this..
So lets cut to the chase, what has a week using this device to do work been like?
At times it felt just like being on a Chromebook, others its as frustrating as anything.. However its frustrating for the same reasons a Windows User would be frustrated going to a Mac (or Vice Versa). things are not available..
Lets start with the good…
Putting the Samsung Folio keyboard on this tablet, and sitting down at a desk, turning on Dex and working was, because i've been using chromeOS, a seamless experience in the most part. I'm used to the Android experience or the web app experience. The tablet is quick. I'm able to edit Insta360 Videos, or in Lightroom or VCSO.. I get Slack messages and apparently look good in Meet calls because the webcam is where it should be (top middle in landscape mode). the battery has lasted all day and I've been able to do what I need to do (DevOps, Ansible, Terraform, sysadmin stuff)
The processor is more than capable of having 15+ apps running, multiple tabs.. the screen is crystal clear, the speakers are good. However i'd expect all of this, its a premium product (RRP: £800ish) just as I would from a similar priced chromeOS tablet.
However I do think this is the case because of the tablets screen real-estate. personally i think if i had got the Galaxy tab10 plus with a smaller screen, I'd have felt much more constricted in what I was doing..
Compared to the Ipad Pro experience, this is no matter what any tech bro influencer will tell you a huge leap over said device. Being able to actually multi task and run apps (in dex) not full screen alone takes this to a level above the Apple product.
However then there is whats missing.. These as i inferred above are things i've noticed having used a Chromebook as my daily driver for the last 5+ years.
As a huge Linux user on Native platforms and chromeOS, i really missed the Chromebooks Linux shell. this is something I've seen Google are working on with android. Both the full debian runing on the OS with Icons aoppearing when you install Linux apps with GUI's (OnlyOffice for example) which launch independetly of the shell is not a feature to be sniffed at and IMO make the Chromebook one of the best entry level Linux devices available today. Whatever Google have done here, they need to replicate.
I'd also like to see the desktop version of the Chrome browser especially on the bigger scren, the android version of chrome is ok for most things, having the desktop version however should not be a huge leap of development to get this working.. with a huge highlight on PWAs which i use a lot on ChromeOS
Finally there is Dex, I have a love hate relationship over the years with Dex, and the classic version has been my workhorse for the last week. with a keyboard, mouse and external monitor this is more than a workable solution for checking email, slack, meet meetings and even some coding. All the time however i am thinking why not chromeOS?
Dex for its time was a great and groundbreaking idea, and interestingly is the last of many convergence tools over the years, and its always made we wonder why when i plug in a Pixel Phone/Tablet into a USB Hub with a monitor I don't get a ChromeOS like experience.
So what are my thoughts on chromeOS becoming Android based on using arguably the top tier Android experience as my sole PC for a week?
It boils for me into these areas
While ChromeOS will run fine on a 4Gb Arm chip for browsing the web and a few tasks. 8Gb is the minimum you need to start using it properly.. The same will be the same with any new android tablet, for this to work, the 8Gb equivalent needs to be the base hardware, same with processors and storage. Google will need as they did with chromebook Plus to set a minimum spec for these new devices day 1. Or they will cause a lot of market confusion and again get that chromeOS low power second screen device label that they have never shifted from the tech press narrative. This i think has only worked for me because of the premium experience, i think had i gone mid tier i'd have been writing something very different.
The interface and app experience is somewhat comparable, however if Google do put the desktop browser on android as has been suggested they may do, this will make a big difference. OneUI for all its haters, does do a good job of presenting a nice desktop above the Pixel equivalent. Its, dare i say it, more "windows like" and having that as an option interface wise would be a good thing.
Expanding on Interface, the experience presnted to the user of Dex when plugging into an external monitor and adding a keyboard/mouse is important, I would like to see Google work here on something which looks like chromeOS appear when i plug an (lets call it Android Plus) Android Plus device into a hub. a step above dex and a more Usable desktop. this provides huge value ad, and really starts to differentiate Android from Ipad Pro and (i think its called) stage manager. This starts to become an easy drop in replacement for schools, businesses etc while staying familiar and enterprise admins can still do thier thing.
And finally there are things which google should 100% be pulling over from ChromeOS, i think the whole material you type experience is better on chromeOS (although this might just be Samsungs OneUI), the Linux shell experience is another huge thing. Better PWA support and the inbuilt VPN support would be nice too.
All in all a space I'll be hugely interested in over the next few years, if google is serious about making a dent in that lucrative iPad/Pro market it needs to make changes and the convergence of the two OS might actually be the thing which takes the Android OS everyone gave up on on Tablets and the chromeOS only good as a second screen device and makes them the thing you guy to get stuff done..
2 notes · View notes
notquiteapex · 1 year ago
Text
So, how's the JukeBox development coming along? Well, it sure is coming, I promise.
Tumblr media
In case you don't know what a JukeBox is, it's a little hotkey device I'm building! I originally made this to assist with my endeavors in streaming, but it turns out having extra keys is very useful for a lot of things! Whether it be hotkeys for quickly running macros via AutoHotKey, managing your Discord audio settings, playing funny sounds with VoiceMod, switching tools in your favorite art program like Paint Tool SAI, or managing OBS like I do. It's a very powerful device, and all it does is act like a keyboard with the F13-F24 keys. I bet you didn't even know there was more than the F1-F12 keys, am I right?
About a year ago, I said I would begin selling these soon. That was a bit of a lie, fortunately I am very good at those. That last bit was also a lie, in case you couldn't tell. I got the opportunity to work on the JukeBox as part of an independent study for college credit, so I took a lot of time to plan and rethink the product. That part wasn't a lie The result is the new V5 board!
Tumblr media
Ok so this isn't the actual V5 board yet.
I decided to completely change up what makes up a JukeBox. I decided to use an RP2040 chip, which is used to power a Raspberry Pi Pico. I used a Pico board, along with the old JukeBox V4 boards, an RGB LED ring, and an OLED screen to build my ideal V5 prototype. The result is the same JukeBox known and loved but with some added features, like reactive lighting and a screen to display fun graphics and info!
Tumblr media
This is the finalized board, it's design has been shipped off to manufacturing, and will hopefully arrive right at the start of the new year. I'm paying a lot of money for just 10 of these things! I can't wait.
The plan is to sell 3 versions of the board, a basic variant (keyboard only), an RGB variant, and an RGB plus screen variant. Prices are still being determined, but they will be higher than previously anticipated due to rising material costs. The goal is to keep the basic variant at $25 to maintain affordability. You will also be able to choose what kinds of keys you want, be it Cherry MX Blues or Kailh Choc Whites.
Tumblr media Tumblr media
I'm working on the final casing. It'll be a 3D printed shell with some nice M2.5 nuts and bolts. It'll also be in a mostly-opaque white so the RGB looks good shining through. The legs are also completely optional, both the case and the legs will have nice rubber feet to keep the board steady. The keycaps will be "relegendable", meaning you'll be able to stick a piece of paper in them with whatever you want on them. You get everything seen here, plus a USB-C cable, and my deepest gratitude. Maybe some day you'll get to have a JukeBox in atomic purple instead of a basic white!
The best part about it all is that you don't need to install any drivers! The keyboard component is always guaranteed to work on any computer that supports USB, and most usually do (hopefully). The screen and RGB won't work without a companion app, sadly, but I'm working hard to make it painless to setup and use, near plug-and-play. I've been writing it in Rust while working on the board, and it will support Windows and Linux without much issue.
Lastly, the entire project is going to be open source! The code will be under an open license, and all the physical parts will be usable under a Creative Commons license (CC BY-NC-SA). I won't allow people to just up and sell the boards without modification, but if someone wants to make and sell their own variant I'd be more than happy to allow it if they ask. Devices like these should be cheap and accessible for everyone.
Hopefully I'll start selling these on my Ko-fi before Q2 of 2024. See you then!
13 notes · View notes